/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

import com.google.gson.Gson;
import conexion.JsonFormat;
import conexion.SqlFormat;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import libreriaTicket.dao.DaoTipoEvento;
import libreriaTicket.dao.DaoUsuario;
import libreriaTicket.entity.Comuna;
import libreriaTicket.entity.Usuario;

/**
 *
 * @author Duoc
 */
public class TipoEvento extends HttpServlet {

    /**
     * Processes requests for both HTTP
     * <code>GET</code> and
     * <code>POST</code> methods.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            /* TODO output your page here. You may use following sample code. */
            /* out.println("<!DOCTYPE html>");
             out.println("<html>");
             out.println("<head>");
             out.println("<title>Servlet TipoEvento</title>");            
             out.println("</head>");
             out.println("<body>");
             out.println("<h1>Servlet TipoEvento at " + request.getContextPath() + "</h1>");
             out.println("</body>");
             out.println("</html>");*/
        } finally {
            // out.close();
        }
    }

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /**
     * Handles the HTTP
     * <code>GET</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);

        int accion = Integer.parseInt(request.getParameter("accion"));

        if (accion == SqlFormat.INSERTAR) {
            insertarTipoEvento(request, response);
        }

        if (accion == SqlFormat.ELIMINAR) {
            eliminarTipoEvento(request, response);
        }
        if (accion == SqlFormat.SELECCIONAR) {
            selectAll(request, response);
        }
        
        if(accion == SqlFormat.ACTUALIZAR)
        {
            updateTipoEvento(request, response);
        }

    }

    /**
     * Handles the HTTP
     * <code>POST</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Returns a short description of the servlet.
     *
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>

    public void insertarTipoEvento(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        response.setContentType("application/json");
        PrintWriter out = response.getWriter();

        //--Se recuperan las comuans por region

        libreriaTicket.entity.TipoEvento tipoEvento = new libreriaTicket.entity.TipoEvento();


        String categoria = request.getParameter("categoria");
        String descripcion = request.getParameter("descripcion");

        tipoEvento.setCategoria(categoria);
        tipoEvento.setDescripcion(descripcion);
        JsonFormat json = new JsonFormat();
        
        if (DaoTipoEvento.sqlInsert(tipoEvento)) {
            
            json.addField("codigo", 1);
        } else {
            json.addField("codigo", 0);
        }

        out.write(json.getJsonSentence());

    }

    public void eliminarTipoEvento(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("application/json");
        PrintWriter out = response.getWriter();


        int idTipoEvento = Integer.parseInt(request.getParameter("idTipoEvento"));

        libreriaTicket.entity.TipoEvento tipoEvento = new libreriaTicket.entity.TipoEvento();
        tipoEvento.setIdTipoEvento(idTipoEvento);
        JsonFormat json = new JsonFormat();

        if (DaoTipoEvento.sqlDelete(tipoEvento)) {
            
            json.addField("codigo", 1);
        } else {
            json.addField("codigo", 0);
        }

        out.write(json.getJsonSentence());

    }

    public void selectAll(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        response.setContentType("application/json");
        PrintWriter out = response.getWriter();

        ArrayList<libreriaTicket.entity.TipoEvento> tiposEventos =
                DaoTipoEvento.sqlSelectAll();

        Gson json = new Gson();

        out.write(json.toJson(tiposEventos));//--Se devuelve el json

    }

    public void updateTipoEvento(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        response.setContentType("application/json");
        PrintWriter out = response.getWriter();

        libreriaTicket.entity.TipoEvento tipoEvento = new libreriaTicket.entity.TipoEvento();

        String id = request.getParameter("idTipoEvento");
        String categoria = request.getParameter("categoria");
        String descripcion = request.getParameter("descripcion");

        tipoEvento.setIdTipoEvento(Integer.parseInt(id));
        tipoEvento.setCategoria(categoria);
        tipoEvento.setDescripcion(descripcion);
        
         JsonFormat json = new JsonFormat();

        if (DaoTipoEvento.sqlUpdate(tipoEvento)) {
            
            json.addField("codigo", 1);
        } else {
            json.addField("codigo", 0);
        }
        
        out.write(json.getJsonSentence());



    }
}
